<html>
<head><meta charset="utf-8"><title>design meeting 2020.02.25 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html">design meeting 2020.02.25</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="189060154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060154">(Feb 25 2020 at 20:54)</a>:</h4>
<p>About 10 minutes until meeting time.<br>
Potential topics:</p>
<ul>
<li>Sync up/progress</li>
<li>rustc integration</li>
<li><code>Sized</code> traits</li>
<li>recursive solver</li>
<li>Problems with <code>any_future_answer</code>/<code>MayInvalidate</code> (<a href="https://github.com/rust-lang/chalk/pull/331" target="_blank" title="https://github.com/rust-lang/chalk/pull/331">https://github.com/rust-lang/chalk/pull/331</a>)</li>
</ul>



<a name="189060158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060158">(Feb 25 2020 at 20:54)</a>:</h4>
<p>Anything else?</p>



<a name="189060684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060684">(Feb 25 2020 at 21:00)</a>:</h4>
<p>Hi <span class="user-group-mention" data-user-group-id="692">@WG-traits</span>. Meeting time (Pretty sure...). Who's around?</p>



<a name="189060727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060727">(Feb 25 2020 at 21:01)</a>:</h4>
<p>Oh, no <span class="user-mention" data-user-id="116009">@nikomatsakis</span></p>



<a name="189060817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060817">(Feb 25 2020 at 21:02)</a>:</h4>
<p>Meeting time should be right (shifts for me an hour in 2 weeks because of summer time, so I keep checking)</p>



<a name="189060843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060843">(Feb 25 2020 at 21:02)</a>:</h4>
<p>Right</p>



<a name="189060846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060846">(Feb 25 2020 at 21:02)</a>:</h4>
<p>I think this is the first meeting at the new time?</p>



<a name="189060863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060863">(Feb 25 2020 at 21:03)</a>:</h4>
<p>oh, no</p>



<a name="189060868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060868">(Feb 25 2020 at 21:03)</a>:</h4>
<p>I'm here</p>



<a name="189060874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060874">(Feb 25 2020 at 21:03)</a>:</h4>
<p>My internet was malfunctioning</p>



<a name="189060909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060909">(Feb 25 2020 at 21:03)</a>:</h4>
<p>I think the thing I would add to the agenda</p>



<a name="189060912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060912">(Feb 25 2020 at 21:03)</a>:</h4>
<p>or maybe it is "sync up"</p>



<a name="189060958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060958">(Feb 25 2020 at 21:04)</a>:</h4>
<p>is that I think we haven't 100% clarified the sprint goals so to speak</p>



<a name="189060985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060985">(Feb 25 2020 at 21:04)</a>:</h4>
<p>Ah yeah, that's a good point</p>



<a name="189060989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060989">(Feb 25 2020 at 21:04)</a>:</h4>
<p>I was hoping to have a nice tidy list of issues next to my name</p>



<a name="189060993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189060993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189060993">(Feb 25 2020 at 21:04)</a>:</h4>
<p>but somehow that didn't happen yesterday</p>



<a name="189061051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061051">(Feb 25 2020 at 21:05)</a>:</h4>
<p>So, who all is "working on" the sprint right now?</p>



<a name="189061078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061078">(Feb 25 2020 at 21:05)</a>:</h4>
<p>Heh, a good question</p>



<a name="189061079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061079">(Feb 25 2020 at 21:05)</a>:</h4>
<p>Me, <span class="user-mention" data-user-id="116009">@nikomatsakis</span>(?), <span class="user-mention" data-user-id="220273">@Jane Lusby</span>, <span class="user-mention" data-user-id="125131">@detrumi</span>, <span class="user-mention" data-user-id="198819">@David Barsky</span>(?)</p>



<a name="189061084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061084">(Feb 25 2020 at 21:05)</a>:</h4>
<p>it seems like <span class="user-mention" data-user-id="220273">@Jane Lusby</span></p>



<a name="189061107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061107">(Feb 25 2020 at 21:06)</a>:</h4>
<p>I wanted to sync a bit with <span class="user-mention" data-user-id="125131">@detrumi</span> in terms of what they are doing (impl trait?)</p>



<a name="189061144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061144">(Feb 25 2020 at 21:06)</a>:</h4>
<p>I am not sure whether <span class="user-mention" data-user-id="125294">@Aaron Hill</span> wound up doing anything</p>



<a name="189061148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061148">(Feb 25 2020 at 21:06)</a>:</h4>
<p>but maybe the start is to list out the things that we have each done?</p>



<a name="189061152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061152">(Feb 25 2020 at 21:06)</a>:</h4>
<p>here</p>



<a name="189061169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061169">(Feb 25 2020 at 21:06)</a>:</h4>
<p>Yeah, I got a bit further with impl trait, but I'm not sure how to continue at the moment</p>



<a name="189061234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061234">(Feb 25 2020 at 21:07)</a>:</h4>
<p>Things Niko did on Monday:</p>
<ul>
<li>started poking at debruijn indices in chalk</li>
<li>worked a bit more on the wg-traits skill-tree, I wanted to add statuses and refine a few things</li>
<li>worked with <span class="user-mention" data-user-id="220273">@Jane Lusby</span> on introducing <code>&amp;self</code> for interner methods</li>
<li>wrote the recursive solver write-up</li>
</ul>



<a name="189061247"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061247" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061247">(Feb 25 2020 at 21:07)</a>:</h4>
<p>Not necessarily part of the sprint, but I need to get around to addressing review for engine book. Working on integrating chalk-solve into rustc. And making what I have integrated less hacky</p>



<a name="189061314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061314">(Feb 25 2020 at 21:08)</a>:</h4>
<p>Ok all I saw was "wrote the recursive solver" and my jaw half dropped</p>



<a name="189061325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061325">(Feb 25 2020 at 21:08)</a>:</h4>
<p>lol not quite</p>



<a name="189061338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061338">(Feb 25 2020 at 21:08)</a>:</h4>
<p>though I actually think it wouldn't take me that long</p>



<a name="189061392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061392">(Feb 25 2020 at 21:09)</a>:</h4>
<p>er</p>



<a name="189061398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061398">(Feb 25 2020 at 21:09)</a>:</h4>
<p>to get an initial prototype, I meant to add :)</p>



<a name="189061403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061403">(Feb 25 2020 at 21:09)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125131">detrumi</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189061169" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189061169">said</a>:</p>
<blockquote>
<p>Yeah, I got a bit further with impl trait, but I'm not sure how to continue at the moment</p>
</blockquote>
<p>Do you maybe want to explain a bit about what you've done and what you're stuck on?</p>



<a name="189061415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061415">(Feb 25 2020 at 21:09)</a>:</h4>
<p>but the Zulip app logged me out in the middle of typing :P</p>



<a name="189061419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061419">(Feb 25 2020 at 21:09)</a>:</h4>
<p>Sure</p>



<a name="189061437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061437">(Feb 25 2020 at 21:09)</a>:</h4>
<p>So I'm trying to get this test working:</p>
<div class="codehilite"><pre><span></span>program {
    trait Trait { }
    struct Ty { }
    impl Trait for Ty { }

    opaque type T: Trait = Ty;
}

goal {
    T: Trait
} yields {
    &quot;Unique; substitution []&quot;
}
</pre></div>



<a name="189061514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061514">(Feb 25 2020 at 21:10)</a>:</h4>
<p>I've got most things in place, but I'm confused about how to create the goal</p>



<a name="189061519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061519">(Feb 25 2020 at 21:10)</a>:</h4>
<p>yeah so <span class="user-mention" data-user-id="125131">@detrumi</span> I think we need to talk out the high-level architecture of <code>opaque type</code></p>



<a name="189061551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061551">(Feb 25 2020 at 21:10)</a>:</h4>
<p>ah well I see that this includes some of the ideas I was thinking, i.e. that we have to specify for now the private type</p>



<a name="189061594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061594">(Feb 25 2020 at 21:11)</a>:</h4>
<p>I think it should be a <code>TraitRef</code>, but that takes a <code>TraitId</code> instead of an <code>ImplTraitId</code> (placeholder for <code>T</code>)</p>



<a name="189061597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061597">(Feb 25 2020 at 21:11)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125131">detrumi</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189061514" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189061514">said</a>:</p>
<blockquote>
<p>I've got most things in place, but I'm confused about how to create the goal</p>
</blockquote>
<p>which goal are you referring to?</p>



<a name="189061623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061623">(Feb 25 2020 at 21:11)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> The <code>T: Trait</code> part</p>



<a name="189061699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061699">(Feb 25 2020 at 21:12)</a>:</h4>
<p>are you saying you're not sure how to represent the type <code>T</code>?</p>



<a name="189061723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061723">(Feb 25 2020 at 21:12)</a>:</h4>
<p>ok ok I see</p>



<a name="189061729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061729">(Feb 25 2020 at 21:12)</a>:</h4>
<p>seems like this is a question of how to adjust chalk-ir then</p>



<a name="189061794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061794">(Feb 25 2020 at 21:13)</a>:</h4>
<p>hmm</p>



<a name="189061800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061800">(Feb 25 2020 at 21:13)</a>:</h4>
<p>The whole <code>TraitRef</code> type is confusing me, but yeah, that might be the case</p>



<a name="189061805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061805">(Feb 25 2020 at 21:14)</a>:</h4>
<p>I was going to say that maybe to start we add a variant to <code>TypeName</code></p>



<a name="189061858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061858">(Feb 25 2020 at 21:14)</a>:</h4>
<p>yeah <code>TraitRef</code> is I think the wrong direction</p>



<a name="189061873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061873">(Feb 25 2020 at 21:14)</a>:</h4>
<p>I did add a variant there</p>



<a name="189061920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061920">(Feb 25 2020 at 21:14)</a>:</h4>
<p>maybe we should dig in in a dedicated topic?</p>



<a name="189061981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189061981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189061981">(Feb 25 2020 at 21:14)</a>:</h4>
<p>ideally you + I could schedule a time tomorrow to talk about it in more depth or something</p>



<a name="189062044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062044">(Feb 25 2020 at 21:15)</a>:</h4>
<p>Sounds good</p>



<a name="189062070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062070">(Feb 25 2020 at 21:15)</a>:</h4>
<p>So <code>TraitRef</code> is a bit confusing, especially when asking if some type implements another. Really the trait would be <code>Trait</code> and Substitution would be <code>&lt;T&gt;</code>?</p>



<a name="189062077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062077">(Feb 25 2020 at 21:15)</a>:</h4>
<p>right ?</p>



<a name="189062152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Barsky <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062152">(Feb 25 2020 at 21:15)</a>:</h4>
<p>(reading along!)</p>



<a name="189062201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062201">(Feb 25 2020 at 21:16)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189062070" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189062070">said</a>:</p>
<blockquote>
<p>So <code>TraitRef</code> is a bit confusing, especially when asking if some type implements another. Really the trait would be <code>Trait</code> and Substitution would be <code>&lt;T&gt;</code>?</p>
</blockquote>
<p>That's actually the reverse of what I was thinking of</p>



<a name="189062204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062204">(Feb 25 2020 at 21:16)</a>:</h4>
<p>Anyways, a dedicated topic works for that too</p>



<a name="189062211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062211">(Feb 25 2020 at 21:16)</a>:</h4>
<p>A <code>TraitRef</code> is basically a trait + its type parameters, and is used when asking queries like <code>Implemented(&lt;TraitRef&gt;)</code></p>



<a name="189062218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062218">(Feb 25 2020 at 21:16)</a>:</h4>
<p>it's not really used as part of a <em>type</em></p>



<a name="189062231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062231">(Feb 25 2020 at 21:16)</a>:</h4>
<p>except sort of for <code>dyn</code> types, because a <code>dyn</code> type is augmented with a list of bounds</p>



<a name="189062257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062257">(Feb 25 2020 at 21:17)</a>:</h4>
<p>The goal would be <code>Implemented(&lt;TraitRef&gt;)</code> though?</p>



<a name="189062275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062275">(Feb 25 2020 at 21:17)</a>:</h4>
<p>Or, is the confusion how to represent <code>T</code> alone?</p>



<a name="189062305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062305">(Feb 25 2020 at 21:17)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189062257" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189062257">said</a>:</p>
<blockquote>
<p>The goal would be <code>Implemented(&lt;TraitRef&gt;)</code> though?</p>
</blockquote>
<p>I think the goal here would be <code>Implemented(T: Trait)</code>, and the <code>T: Trait</code> is a trait-ref, but we need to settle up the right way to represent <code>T</code>...</p>



<a name="189062314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062314">(Feb 25 2020 at 21:18)</a>:</h4>
<p>I also think it should be the same as how we represent associated types, more or less</p>



<a name="189062364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062364">(Feb 25 2020 at 21:18)</a>:</h4>
<p>though I'm feeling a bit unsure about how we should represent <em>those</em> :)</p>



<a name="189062374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062374">(Feb 25 2020 at 21:18)</a>:</h4>
<p>but the core concept of an unnormalized type + a placeholder is right I think</p>



<a name="189062385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062385">(Feb 25 2020 at 21:18)</a>:</h4>
<p>just not sure literally how I think the variants should be in the <code>Ty</code> enum</p>



<a name="189062399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062399">(Feb 25 2020 at 21:18)</a>:</h4>
<p>right now, the placeholder is part of <code>ApplicationTy</code>, and maybe that's right</p>



<a name="189062436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062436">(Feb 25 2020 at 21:19)</a>:</h4>
<p>See, this goes back to me being confused how <code>Alias</code> can replace <code>Opaque</code></p>



<a name="189062440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062440">(Feb 25 2020 at 21:19)</a>:</h4>
<p>I had a branch though where I made the <code>Placeholder</code> variant include both simple generics like the <code>A</code> in <code>fn foo&lt;A&gt;</code> as well as associated type projections like <code>T::Item</code>, which <em>also</em> makes some sense to me, since they are both logically placeholders (i.e., they stand for "some specific type that we don't know")</p>



<a name="189062507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062507">(Feb 25 2020 at 21:20)</a>:</h4>
<p>well maybe we can dig into it a bit more :)</p>



<a name="189062509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062509">(Feb 25 2020 at 21:20)</a>:</h4>
<p>in short, an opaque type <strong>is</strong> an alias</p>



<a name="189062533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062533">(Feb 25 2020 at 21:20)</a>:</h4>
<p>Does chalk even need to care about the difference between type projections and impl trait?</p>



<a name="189062574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062574">(Feb 25 2020 at 21:20)</a>:</h4>
<p>yes, but only slightly</p>



<a name="189062579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062579">(Feb 25 2020 at 21:20)</a>:</h4>
<p>it depends on what you mean by "chalk" I guess</p>



<a name="189062618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062618">(Feb 25 2020 at 21:21)</a>:</h4>
<p>so, an <em>alias</em> is basically "a type <code>A</code> that is <em>equivalent</em> to some other type <code>B</code>"</p>



<a name="189062631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062631">(Feb 25 2020 at 21:21)</a>:</h4>
<p>so <code>&lt;vec::IntoIter&lt;u32&gt; as Iterator&gt;::Item</code> is an <em>alias</em> for <code>u32</code></p>



<a name="189062694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062694">(Feb 25 2020 at 21:22)</a>:</h4>
<p>the thing about aliases, though, is that <em>sometimes</em> you don't know the type <code>B</code></p>



<a name="189062696"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062696" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062696">(Feb 25 2020 at 21:22)</a>:</h4>
<p>Actually, this makes me think a sort interesting thought</p>



<a name="189062698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062698">(Feb 25 2020 at 21:22)</a>:</h4>
<p>you know there <strong>is</strong> a type <code>B</code>, but you don't know what it is</p>



<a name="189062705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062705">(Feb 25 2020 at 21:22)</a>:</h4>
<p>this is when you have placeholders</p>



<a name="189062711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062711">(Feb 25 2020 at 21:22)</a>:</h4>
<p>about projections</p>



<a name="189062721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062721">(Feb 25 2020 at 21:22)</a>:</h4>
<p>I guess</p>



<a name="189062735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062735">(Feb 25 2020 at 21:22)</a>:</h4>
<p>I guess I just realized that they're the same thing</p>



<a name="189062739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062739">(Feb 25 2020 at 21:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125131">detrumi</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189062533" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189062533">said</a>:</p>
<blockquote>
<p>Does chalk even need to care about the difference between type projections and impl trait?</p>
</blockquote>
<p>to be specific, chalk-solve generates slightly different rules between the two cases</p>



<a name="189062743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062743">(Feb 25 2020 at 21:22)</a>:</h4>
<p>but we sort of are treating them differently</p>



<a name="189062767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062767">(Feb 25 2020 at 21:23)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189062735" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189062735">said</a>:</p>
<blockquote>
<p>I guess I just realized that they're the same thing</p>
</blockquote>
<p>what is "they" in this sentence?</p>



<a name="189062784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062784">(Feb 25 2020 at 21:23)</a>:</h4>
<p>projections and impl Trait, as aliases</p>



<a name="189062789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062789">(Feb 25 2020 at 21:23)</a>:</h4>
<p>I guess</p>



<a name="189062871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062871">(Feb 25 2020 at 21:24)</a>:</h4>
<p>Why are the rules different?</p>



<a name="189062902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062902">(Feb 25 2020 at 21:25)</a>:</h4>
<p>there are two differences, <span class="user-mention" data-user-id="125131">@detrumi</span></p>



<a name="189062922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062922">(Feb 25 2020 at 21:25)</a>:</h4>
<p>first off, opaque types are never normalized until monomorphization time ("reveal mode")</p>



<a name="189062935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189062935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189062935">(Feb 25 2020 at 21:25)</a>:</h4>
<p>secondly, we do permit auto-trait leakage</p>



<a name="189063171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063171">(Feb 25 2020 at 21:28)</a>:</h4>
<p>so when generating the clauses for <code>Implemented(X: Send)</code></p>



<a name="189063188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063188">(Feb 25 2020 at 21:28)</a>:</h4>
<p>(or any auto-trait)</p>



<a name="189063196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063196">(Feb 25 2020 at 21:28)</a>:</h4>
<p>if <code>X</code> is the <em>placeholder for an opaque type</em></p>



<a name="189063203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063203">(Feb 25 2020 at 21:28)</a>:</h4>
<p>we would treat it differently than the <em>placeholder for an associated type</em></p>



<a name="189063205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063205">(Feb 25 2020 at 21:28)</a>:</h4>
<p>Opaque types generate rules like <code>Implemented(T: Send) :- Implemented(Trait: Send).</code>, don't associated types do the same? Or is this different?</p>



<a name="189063231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063231">(Feb 25 2020 at 21:29)</a>:</h4>
<p>it's worth here distinguishing the unnormalized form (I'll write that as <code>T</code>) from the placeholder form (<code>!T</code>)</p>



<a name="189063258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063258">(Feb 25 2020 at 21:29)</a>:</h4>
<p>if you have <code>opaque type T: Trait = Ty</code></p>



<a name="189063311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063311">(Feb 25 2020 at 21:30)</a>:</h4>
<p>then you would generate rules like</p>
<p><code>Implemented(!T: Trait).</code></p>
<p>and</p>
<p><code>Implemented(!T: Send) :- Implemented(Ty: Send).</code> (for any auto-trait, really)</p>



<a name="189063447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063447">(Feb 25 2020 at 21:32)</a>:</h4>
<p>Okay, but that points to the first difference (normalizing only at monomorphization time)</p>



<a name="189063475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063475">(Feb 25 2020 at 21:32)</a>:</h4>
<p>right, and that shows up in the <code>Normalize</code> rules</p>



<a name="189063483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063483">(Feb 25 2020 at 21:33)</a>:</h4>
<p>we're definitely going deep down the rabbit hole a bit here :)</p>



<a name="189063489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063489">(Feb 25 2020 at 21:33)</a>:</h4>
<p>which is ok</p>



<a name="189063491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063491">(Feb 25 2020 at 21:33)</a>:</h4>
<p>Indeed</p>



<a name="189063495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063495">(Feb 25 2020 at 21:33)</a>:</h4>
<p>but maybe we should spark up that separate topic and return to the agenda</p>



<a name="189063515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063515">(Feb 25 2020 at 21:33)</a>:</h4>
<p>Let me look at what's on the list</p>



<a name="189063566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063566">(Feb 25 2020 at 21:34)</a>:</h4>
<p>rustc integration?</p>



<a name="189063614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063614">(Feb 25 2020 at 21:34)</a>:</h4>
<p>yeah that's a good one to check on</p>



<a name="189063622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063622">(Feb 25 2020 at 21:35)</a>:</h4>
<p>so you did some initial work, I haven't reviewed the PR but I will try to</p>



<a name="189063630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063630">(Feb 25 2020 at 21:35)</a>:</h4>
<p>So, basically, from what I've gathered. There's a couple big "hurtles" for integration right now</p>



<a name="189063642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063642">(Feb 25 2020 at 21:35)</a>:</h4>
<p>First one is the interner, which <span class="user-mention" data-user-id="220273">@Jane Lusby</span> is working on</p>



<a name="189063666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063666">(Feb 25 2020 at 21:35)</a>:</h4>
<p>(I've managed to get around it for testing by using a tls with unsafe to change the lifetime, but this is bad, obviously)</p>



<a name="189063667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063667">(Feb 25 2020 at 21:35)</a>:</h4>
<p>:thumbsup:</p>



<a name="189063731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063731">(Feb 25 2020 at 21:36)</a>:</h4>
<p>another thing that's confusing me a bunch, and has been brought up, is the difference in binders and such</p>



<a name="189063735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063735">(Feb 25 2020 at 21:36)</a>:</h4>
<p>Yes</p>



<a name="189063739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063739">(Feb 25 2020 at 21:36)</a>:</h4>
<p>yea im working on it, gonna get more done today, its just hard because I get stuck if niko or jack aren't around to help me navigate things</p>



<a name="189063749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063749">(Feb 25 2020 at 21:36)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189063731" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189063731">said</a>:</p>
<blockquote>
<p>another thing that's confusing me a bunch, and has been brought up, is the difference in binders and such</p>
</blockquote>
<p>I'm working on that in a branch</p>



<a name="189063759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063759">(Feb 25 2020 at 21:36)</a>:</h4>
<p>albeit a bit slowly</p>



<a name="189063780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063780">(Feb 25 2020 at 21:36)</a>:</h4>
<p>but both of these are non-trivial things</p>



<a name="189063797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063797">(Feb 25 2020 at 21:36)</a>:</h4>
<p>I guess that for <em>rustc integration</em> we only need <code>&amp;self</code> in intern methods</p>



<a name="189063840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063840">(Feb 25 2020 at 21:37)</a>:</h4>
<p>I wonder if there's a more minimal "remove chalk from rustc-traits" PR that we could lang in the interim that wouldn't stand in the way of further integration</p>



<a name="189063888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063888">(Feb 25 2020 at 21:38)</a>:</h4>
<p>yeah, I mean just remove any <code>chalk-engine</code> code</p>



<a name="189063989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189063989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189063989">(Feb 25 2020 at 21:39)</a>:</h4>
<p>(but like I said, if the full removal lands in master, it's easy enough to revert that in the PR)</p>



<a name="189064002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064002">(Feb 25 2020 at 21:39)</a>:</h4>
<p>Another hurtle  is <code>Sized</code></p>



<a name="189064028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064028">(Feb 25 2020 at 21:39)</a>:</h4>
<p>Particularly, we have to generate a <code>T: Sized</code> implementation <em>somewhere</em></p>



<a name="189064118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064118">(Feb 25 2020 at 21:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189063888" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189063888">said</a>:</p>
<blockquote>
<p>yeah, I mean just remove any <code>chalk-engine</code> code</p>
</blockquote>
<p>right, this</p>



<a name="189064128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064128">(Feb 25 2020 at 21:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189064028" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189064028">said</a>:</p>
<blockquote>
<p>Particularly, we have to generate a <code>T: Sized</code> implementation <em>somewhere</em></p>
</blockquote>
<p>yes, and I think <code>chalk-solve</code> is the right place</p>



<a name="189064136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064136">(Feb 25 2020 at 21:40)</a>:</h4>
<p>but as far as I can tell, we have to know the struct and trait (which is obviously <code>Sized</code> here) together</p>



<a name="189064145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064145">(Feb 25 2020 at 21:40)</a>:</h4>
<p>right</p>



<a name="189064188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064188">(Feb 25 2020 at 21:41)</a>:</h4>
<p>but the only place in the current <code>RustIrDatabase</code> that you have a trait and struct together is <code>impl_provided_for</code></p>



<a name="189064211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064211">(Feb 25 2020 at 21:41)</a>:</h4>
<p>which, if false, <code>chalk-solve</code> will generate that impl</p>



<a name="189064292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064292">(Feb 25 2020 at 21:42)</a>:</h4>
<p>But</p>



<a name="189064297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064297">(Feb 25 2020 at 21:42)</a>:</h4>
<p>so your comparison to auto traits was apt in that</p>



<a name="189064302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064302">(Feb 25 2020 at 21:42)</a>:</h4>
<p>I think that the place where we generate auto trait impls</p>



<a name="189064304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064304">(Feb 25 2020 at 21:42)</a>:</h4>
<p>that is used for auto-traits only</p>



<a name="189064308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064308">(Feb 25 2020 at 21:42)</a>:</h4>
<p>yes</p>



<a name="189064309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064309">(Feb 25 2020 at 21:42)</a>:</h4>
<p>is the same place roughly we should generate sized impls</p>



<a name="189064317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064317">(Feb 25 2020 at 21:42)</a>:</h4>
<p>exactly</p>



<a name="189064328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064328">(Feb 25 2020 at 21:43)</a>:</h4>
<p>and indeed maybe they share code in chalk-solve for convenience</p>



<a name="189064338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064338">(Feb 25 2020 at 21:43)</a>:</h4>
<p>which is what I was saying in the other thread</p>



<a name="189064351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064351">(Feb 25 2020 at 21:43)</a>:</h4>
<p>it's just that there isn't a "deeper" connection between them</p>



<a name="189064357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064357">(Feb 25 2020 at 21:43)</a>:</h4>
<p>right</p>



<a name="189064361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064361">(Feb 25 2020 at 21:43)</a>:</h4>
<p>yeah, sorry, maybe I misunderstood a bit</p>



<a name="189064370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064370">(Feb 25 2020 at 21:43)</a>:</h4>
<p>no problem</p>



<a name="189064442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064442">(Feb 25 2020 at 21:44)</a>:</h4>
<p>I was basically saying that instead of <code>auto_trait: true</code> meaning <em>everything</em> it means now, it only means that we need to generate the impl</p>



<a name="189064452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064452">(Feb 25 2020 at 21:44)</a>:</h4>
<p>so basically <a href="https://github.com/rust-lang/chalk/blob/2939913fb7bb94ac2a6721087dc086be11410702/chalk-solve/src/clauses.rs#L159" target="_blank" title="https://github.com/rust-lang/chalk/blob/2939913fb7bb94ac2a6721087dc086be11410702/chalk-solve/src/clauses.rs#L159">on this line of code, roughly</a>,</p>



<a name="189064461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064461">(Feb 25 2020 at 21:44)</a>:</h4>
<p>I would expect something like</p>



<a name="189064499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064499">(Feb 25 2020 at 21:44)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="k">match</span><span class="w"> </span><span class="n">db</span><span class="p">.</span><span class="n">well_known_trait</span><span class="p">(</span><span class="n">trait_id</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="nb">None</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="nb">Some</span><span class="p">(</span><span class="n">WellKnownTrait</span>::<span class="nb">Sized</span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">push_sized_trait_impls</span><span class="p">(</span><span class="n">builder</span><span class="p">,</span><span class="w"> </span><span class="n">trait_ref</span><span class="p">),</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="189064533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064533">(Feb 25 2020 at 21:45)</a>:</h4>
<p>I mean, if we be super specific</p>



<a name="189064568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064568">(Feb 25 2020 at 21:45)</a>:</h4>
<p>I see <a href="https://github.com/rust-lang/chalk/blob/2939913fb7bb94ac2a6721087dc086be11410702/chalk-solve/src/clauses.rs#L235" target="_blank" title="https://github.com/rust-lang/chalk/blob/2939913fb7bb94ac2a6721087dc086be11410702/chalk-solve/src/clauses.rs#L235">there is a TODO here</a> :)</p>



<a name="189064598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064598">(Feb 25 2020 at 21:45)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189064442" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189064442">said</a>:</p>
<blockquote>
<p>I was basically saying that instead of <code>auto_trait: true</code> meaning <em>everything</em> it means now, it only means that we need to generate the impl</p>
</blockquote>
<p>well, the thing is, I think there are a number of custom traits, and I don't think we can generalize that much</p>



<a name="189064651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064651">(Feb 25 2020 at 21:46)</a>:</h4>
<p>well, maybe that's not true :)</p>



<a name="189064678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064678">(Feb 25 2020 at 21:46)</a>:</h4>
<p>but e.g. for <code>Clone</code> we have some built-in cases -- and, yes, I guess they will always convert to walking the field types recursively -- but it only applies for tuples, closure types, and some specific examples</p>



<a name="189064696"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064696" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064696">(Feb 25 2020 at 21:46)</a>:</h4>
<p>similarly, for <em>auto traits</em>, we only generate the impl <em>if there isn't a user-given impl already</em></p>



<a name="189064700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064700">(Feb 25 2020 at 21:47)</a>:</h4>
<p>so I feel like a flag on the trait may not be that useful</p>



<a name="189064709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064709">(Feb 25 2020 at 21:47)</a>:</h4>
<p>but I guess we could generalize the <code>well_known_trait</code> to return <code>Some(AutoTrait)</code> or something</p>



<a name="189064716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064716">(Feb 25 2020 at 21:47)</a>:</h4>
<p>i.e., it's like "does this trait require special logic or what"</p>



<a name="189064739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064739">(Feb 25 2020 at 21:47)</a>:</h4>
<p>anyway I guess this is kind of a "how does the code work out cleanest" sort of refactoring, and the truth is I don't have a strong opinion</p>



<a name="189064749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064749">(Feb 25 2020 at 21:47)</a>:</h4>
<p>So, my thoughts</p>



<a name="189064766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064766">(Feb 25 2020 at 21:48)</a>:</h4>
<p>I was mostly concerned that this should be resolved at the "chalk-solve" layer, where we are translating from rust concepts into "logical" concepts</p>



<a name="189064801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064801">(Feb 25 2020 at 21:48)</a>:</h4>
<p>well, not entirely sure</p>



<a name="189064816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064816">(Feb 25 2020 at 21:48)</a>:</h4>
<p>for sure</p>



<a name="189064882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064882">(Feb 25 2020 at 21:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  do you think <code>Unsize</code> implementations should also be handled in Chalk? in particular, the ones for unsizing the last field in a generic type?</p>



<a name="189064931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064931">(Feb 25 2020 at 21:49)</a>:</h4>
<p>Yeah, that's sort what I'm trying to think about</p>



<a name="189064991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189064991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189064991">(Feb 25 2020 at 21:50)</a>:</h4>
<p><span class="user-mention" data-user-id="129457">@Florian Diebold</span> yes</p>



<a name="189065008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065008">(Feb 25 2020 at 21:50)</a>:</h4>
<p>in rustc, those are currently handled in <a href="http://select.rs" target="_blank" title="http://select.rs">select.rs</a></p>



<a name="189065009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065009">(Feb 25 2020 at 21:50)</a>:</h4>
<p>for auto traits, it's more or else easy: a struct implements the auto trait if all it's fields do</p>



<a name="189065015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065015">(Feb 25 2020 at 21:50)</a>:</h4>
<p>basically all that logic should move to chalk-solve imo</p>



<a name="189065084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065084">(Feb 25 2020 at 21:51)</a>:</h4>
<p>I've started implementing the built-in <code>Unsize</code> impls in RA, maybe I should just do that in Chalk then <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="189065087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065087">(Feb 25 2020 at 21:51)</a>:</h4>
<p>I agree some of this will be non-trivial, but that's what's involved in modeling rust I think</p>



<a name="189065091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065091">(Feb 25 2020 at 21:51)</a>:</h4>
<p><span class="user-mention silent" data-user-id="129457">Florian Diebold</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189065084" title="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25/near/189065084">said</a>:</p>
<blockquote>
<p>I've started implementing the built-in <code>Unsize</code> impls in RA, maybe I should just do that in Chalk then <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>
</blockquote>
<p>ideally yes, I think</p>



<a name="189065108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065108">(Feb 25 2020 at 21:51)</a>:</h4>
<p>So, what would the that clause look like?</p>



<a name="189065226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065226">(Feb 25 2020 at 21:52)</a>:</h4>
<p>for <code>Unsize</code>?</p>



<a name="189065252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065252">(Feb 25 2020 at 21:53)</a>:</h4>
<p>we would inspect the self type and generate clauses that are specific to it</p>



<a name="189065259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065259">(Feb 25 2020 at 21:53)</a>:</h4>
<p>this is part of the reason that we flounder if the self type is not known</p>



<a name="189065291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065291">(Feb 25 2020 at 21:53)</a>:</h4>
<p>Hmm</p>



<a name="189065400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065400">(Feb 25 2020 at 21:55)</a>:</h4>
<p>I'm trying to figure out if there are any other "blockers" that I've encountered yet</p>



<a name="189065412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065412">(Feb 25 2020 at 21:55)</a>:</h4>
<p>OK, well, I'm going to have to go in 5 minutes, but I want to go to one topic</p>



<a name="189065423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065423">(Feb 25 2020 at 21:55)</a>:</h4>
<p>nobody really took me up on the sprint goals that were targeting rustc, i.e., simplifying <code>Predicate</code></p>



<a name="189065438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065438">(Feb 25 2020 at 21:55)</a>:</h4>
<p>unfortunate :(</p>



<a name="189065448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065448">(Feb 25 2020 at 21:55)</a>:</h4>
<p>I might try to make a goal to open up some issues on rustc (if I didn't already) and tweet out a bit about those</p>



<a name="189065454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065454">(Feb 25 2020 at 21:55)</a>:</h4>
<p>I really should have written a blog post lol</p>



<a name="189065504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065504">(Feb 25 2020 at 21:56)</a>:</h4>
<p>a tweet might be good</p>



<a name="189065509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065509">(Feb 25 2020 at 21:56)</a>:</h4>
<p>heh, I think we should take it easy on ourselves, we have to iteate a few times to make this into a smooth machine :)</p>



<a name="189065554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065554">(Feb 25 2020 at 21:57)</a>:</h4>
<p>Right, but some involvement on rustc's side would be nice</p>



<a name="189065592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065592">(Feb 25 2020 at 21:57)</a>:</h4>
<p>Yeah, I am super busy with work for a few weeks, I think</p>



<a name="189065601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065601">(Feb 25 2020 at 21:57)</a>:</h4>
<p>so like, the only thing I can really touch is the rustc integration for now</p>



<a name="189065706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065706">(Feb 25 2020 at 21:58)</a>:</h4>
<p>which is plenty &lt;3</p>



<a name="189065717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065717">(Feb 25 2020 at 21:58)</a>:</h4>
<p>With that being said, <span class="user-mention" data-user-id="116009">@nikomatsakis</span> we should schedule a time maybe later this week that you might be on and I can ask questions and talk about rustc-related things</p>



<a name="189065728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065728">(Feb 25 2020 at 21:59)</a>:</h4>
<p>I'm still baby-stepping through things</p>



<a name="189065734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065734">(Feb 25 2020 at 21:59)</a>:</h4>
<p>ok, I'll try to follow up on the rustc <code>Predicate</code> stuff a bit tomorrow, though I may not have a ton of time to do so</p>



<a name="189065761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065761">(Feb 25 2020 at 21:59)</a>:</h4>
<p>OK, I should be dedicating basically all day friday to traits</p>



<a name="189065786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065786">(Feb 25 2020 at 21:59)</a>:</h4>
<p>except for the 10am compile team design mtg</p>



<a name="189065789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065789">(Feb 25 2020 at 21:59)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> im not sure how long the context change will take but if that gets done soon enough I dont mind taking on the Predicate stuff next</p>



<a name="189065791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065791">(Feb 25 2020 at 21:59)</a>:</h4>
<p>Sure, we can discuss</p>



<a name="189065799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065799">(Feb 25 2020 at 21:59)</a>:</h4>
<p>happy to schedule some time with folks on that day</p>



<a name="189065852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065852">(Feb 25 2020 at 22:00)</a>:</h4>
<p>But I think that's meeting over?</p>



<a name="189065862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065862">(Feb 25 2020 at 22:00)</a>:</h4>
<p>Thanks all who attended :)</p>



<a name="189065884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.02.25/near/189065884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E02.2E25.html#189065884">(Feb 25 2020 at 22:00)</a>:</h4>
<p>thanks all &lt;3</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>